// 请帮我创建一个完整的运营位控制器类，具体要求：

// **类结构：**
// - 类名：Controller
// - 导出默认实例
// - 导入：Request, Response, operationalService

// **核心方法：**
// 1. get(req: Request, res: Response) - 获取运营位接口
//    - 查询参数：status（状态筛选，默认0）
//    - 调用：operationalService.getOperational(status)
//    - 响应：{msg: 'ok', datas: data} 或 {msg: 'error', error: error}

// 2. add(req: Request, res: Response) - 新增运营位接口
//    - 请求体：name, status, cover, content, uri
//    - 调用：operationalService.addOperational()
//    - 响应：{msg: 'ok'} 或 {msg: 'error', error: error}

// 3. update(req: Request, res: Response) - 更新运营位状态接口
//    - 请求体：id, status（默认为0）
//    - 参数验证：检查id是否存在
//    - 调用：operationalService.updateOperational(status, id)
//    - 响应：{msg: 'ok'} 或 {msg: 'error', error: error}

// **错误处理：**
// - 统一的catch块处理错误
// - 返回200状态码，通过msg字段区分成功/失败
// - 参数验证失败时返回明确的错误信息

import { Request, Response } from 'express';
import operationalService from '../../services/operational.service';

export class Controller {
    // 获取运营位接口
    get(req: Request, res: Response): void {
        let status = Number(req.query.status as string);
        if (!status) {
            status = 0;
        }
        
        operationalService.getOperational(status)
            .then((data) => {
                res.status(200).json({ msg: 'ok', datas: data });
            })
            .catch((error) => {
                res.status(200).json({ msg: 'error', error: error });
            });
    }

    // 新增运营位接口
    add(req: Request, res: Response): void {
        // 解析请求参数
        const { name, status, cover, content, uri } = req.body;
        
        operationalService.addOperational({ name, status, cover, content, uri })
            .then(() => {
                res.status(200).json({ msg: 'ok' });
            })
            .catch((error) => {
                res.status(200).json({ msg: 'error', error: error });
            });
    }

    // 更新运营位状态接口
    update(req: Request, res: Response): void {
        let { id, status } = req.body;
        
        if (status !== 0 && status !== 1) {
            status = 0;
        }
        
        if (!id) {
            res.status(200).json({ msg: 'error', error: '请指定要更新的运营位 id' });
            return;
        }
        
        operationalService.updateOperational(status, id)
            .then(() => {
                res.status(200).json({ msg: 'ok' });
            })
            .catch((error) => {
                res.status(200).json({ msg: 'error', error: error });
            });
    }
}

export default new Controller();
